1
算法逻辑基础
MATH002Lesson 4
00:00
请将算法视为一段代码,而是一个独立于任何编程语言的解决问题的完整蓝图。它是一条逻辑桥梁,将原始数据(输入)通过一系列精确、有限的步骤,精心转化为期望的结果(输出)。这一过程本质上是确定性的——意味着每一条路径都是可预测的——并且具有普遍性,旨在解决整个问题类别,而非单一偶然情况。

算法逻辑的构成

在离散数学中,我们将算法定义为解决特定问题的逐步方法。为了区分一个简单的‘待办事项清单’与正式的数学算法,我们主要关注两个核心特征:

  • 伪代码: 一种高层次、人类可读的逻辑描述。它忽略语法细节(如分号),专注于流程本身。
  • 追踪记录: 对算法状态的手动日志记录。我们会在每一步记录每个变量的值,以验证逻辑是否成立。

七个核心特征

1. 输入: 算法接收外部数据进行处理。
2. 输出: 算法产生一个结果或解决方案。
3. 精确性: 每一条指令都清晰且无歧义。
4. 确定性: 中间结果是唯一的,仅取决于输入和先前步骤。
5. 有限性: 该过程在有限步数后必然终止。
6. 正确性: 产生的输出确实解决了预期的问题。
7. 普遍性: 该方法适用于广泛范围的潜在输入。

数学基础:可除性

许多算法依赖于数论来运行。例如,奇偶性检查(奇/偶)或质数验证均使用可除性的定义:

我们称整数 $d$ 能整除 $n$(记作 $d|n$),当且仅当存在整数 $k$ 使得 $n = dk$。

这一核心逻辑使算法能够基于数值关系进行分支判断,例如利用卢恩算法识别信用卡号码中的校验位。

🎯 核心原则
算法是逻辑的正式化表达。它必须具备有限性、确定性和正确性。如果它会无限循环或产生模糊结果,那它只是一个过程,而非正式的算法。